﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Reflection;
using System.ComponentModel;
using CoolERP_Common;
using CoolERP_BLL;

namespace CoolERP_Web
{
    /// <summary>
    /// 库存类型
    /// </summary>
    public enum EnumKC_LX
    {
        /// <summary>
        /// 物料
        /// </summary>
        [Description("01")]
        WL,
        /// <summary>
        /// 产品
        /// </summary>
        [Description("02")]
        CP,
        /// <summary>
        /// 部件（包装箱）
        /// </summary>
        [Description("03")]
        BZX
    }

    ///// <summary>
    ///// 各种单据类型
    ///// </summary>
    //public enum EnumYWDJLX
    //{
    //    /// <summary>
    //    /// 销售订单
    //    /// </summary>
    //    [Description("001")]
    //    XSDD,
    //    /// <summary>
    //    /// 销售合同
    //    /// </summary>
    //    [Description("002")]
    //    XSHT,
    //    /// <summary>
    //    /// 采购单
    //    /// </summary>
    //    [Description("003")]
    //    CGD,
    //    /// <summary>
    //    /// 物料进仓单
    //    /// </summary>
    //    [Description("004")]
    //    WL_JC,
    //    /// <summary>
    //    /// 物料出仓单
    //    /// </summary>
    //    [Description("005")]
    //    WL_CC,
    //    /// <summary>
    //    /// 物料盘点单
    //    /// </summary>
    //    [Description("006")]
    //    WL_PD,
    //    /// <summary>
    //    /// 产品（包装箱）进仓单
    //    /// </summary>
    //    [Description("007")]
    //    BZX_JC,
    //    /// <summary>
    //    /// 产品（包装箱）出仓单
    //    /// </summary>
    //    [Description("008")]
    //    BZX_CC,
    //    /// <summary>
    //    /// 产品（包装箱）盘点单
    //    /// </summary>
    //    [Description("009")]
    //    BZX_PD,
    //    /// <summary>
    //    /// 生产计划
    //    /// </summary>
    //    [Description("010")]
    //    SCJH
    //}

    ///// <summary>
    ///// 部门职能类型
    ///// </summary>
    //public enum EnumDepartment
    //{
    //    /// <summary>
    //    /// 研发
    //    /// </summary>
    //    [Description("研发")]
    //    Development,
    //    /// <summary>
    //    /// 行政
    //    /// </summary>
    //    [Description("行政")]
    //    Administration,
    //    /// <summary>
    //    /// 财务
    //    /// </summary>
    //    [Description("财务")]
    //    Finance,
    //    /// <summary>
    //    /// 营销
    //    /// </summary>
    //    [Description("营销")]
    //    Marketing,
    //    /// <summary>
    //    /// 物料控制
    //    /// </summary>
    //    [Description("物料控制")]
    //    PMC,
    //    /// <summary>
    //    /// 生产制造
    //    /// </summary>
    //    [Description("生产制造")]
    //    Manufacturing,
    //    /// <summary>
    //    /// 品质控制
    //    /// </summary>
    //    [Description("品质控制")]
    //    QualityControl,
    //    /// <summary>
    //    /// 管理层
    //    /// </summary>
    //    [Description("管理层")]
    //    Management
    //}

    public class EnumMgr
    {
        /// <summary>
        /// 动态创建枚举类型
        /// </summary>
        public static void CreateEnum()
        {
            Dictionary<string, object> dcList = new Dictionary<string, object>();
            Dictionary<string, string> dc;
            //各种单据类型
            using (CS_YWLXBLL cBLL = new CS_YWLXBLL())
            {
                try
                {
                    dc = new Dictionary<string, string>();
                    foreach (var item in cBLL.GetAll())
                        dc.Add(item.KEY, item.BH);
                    if (dc.Count > 0)
                        dcList.Add("EnumYWDJLX", dc);
                }
                catch { }
            }            
            //部门职能类型
            using (SystemParamBLL sBLL = new SystemParamBLL())
            {
                try
                {
                    dc = new Dictionary<string, string>();
                    foreach (var item in sBLL.GetList(t => t.key.StartsWith("Department")))
                        dc.Add(item.key.Split('_')[1], item.value);
                    if (dc.Count > 0)
                        dcList.Add("EnumDepartment", dc);
                }
                catch { }
            }
            EnumHelper.DynamicCreateEnum("CoolERP_Enum", dcList);
        }
    }
}